专题研究N206:区块链Kol系列之三十二 刘毅之二
专题研究N206:区块链KOL系列之三十二 刘毅之二
本人按: 内容来自巴比特专栏作者同名号,刘毅,Cdot Network创始人,Random Capital合伙人,Web3、区块链技术、机制设计和加密货币市场资深研究者,清华大学硕士,比特币早期投资者。
跨链释放 Dapp 创新潜能,, 刘毅 2019-05-30 08:00
Polkadot/Cosmos的出发点不是连接现有的公链,而首先在于支持开发者快速低成本地开发出新区块链。新区块链可以是应用平台(支持智能合约),但更多的新区块链会是去中心化应用,例如以独立区块链形式存在的去中心化预测市场、TCR、稳定币、借贷市场、交易所等等,我们不妨称之为应用链。Polkadot/Cosmos不但为开发应用链提供工具(Substrate/Cosmos SDK),而且为应用链之间实现可信互操作提供基础设施(Polkadot Relay/Cosmos Hub)。由此可见,Polkadot/Cosmos的跨链,核心在于DApp的新形态——应用链,以及应用链之间的可信互操作。
智能合约混淆了去中心化和可验证两个不同的概念,误导了开发者,令DApp在长达4年的时间里几乎在原地打转。Polkadot/Cosmos(尤其是Polkadot)赋予了DApp链上治理能力。通过解除性能和治理两大发展瓶颈,跨链技术有望释放DApp创新潜力,引发去中心化应用的第三次浪潮。
跨链有什么意义?首先是与世界计算机(平台公链)相比,应用链的共识参与范围大幅缩小,性能和成本问题随之迎刃而解。Substrate/Cosmos SDK开发的应用链可以很容易地达到1000tps以上的处理能力,而且成本很低,能够满足大多数DApp的需求。另一个变化是DApp治理,治理不像性能问题那样显而易见,但却是制DApp发展一大瓶颈。
在数字时代,掌握了自己身份、资产和数据的人,也就掌握了自己的命运。Web3愿景并非Web3基金会或者Polkadot项目所独有。很多区块链项目,包括比特币、以太坊,都有类似的愿景。名称五花八门,包括开放网络,下一代互联网等等。
Hub本是也是区块链,它跟其他所有链都互为侧链。就是说,每条链上的通证都可以转到Hub上,然后通过Hub转到其他链上,网络互联的复杂度跟区块链数量是线性关系。这就是Cosmos选择的架构,在Cosmos的定义里,接入Hub的链称为Zone分区。分区要接入Hub需要两个条件,第一是符合Cosmos标准协议,即IBC链间通信协议。第二是要求Zone具有即时最终性(最好采用Tendermint共识),以确保跨链的一致性。而且Cosmos可以支持多个Hub的互联。对于现存的公链,可以通过协议适配接入Cosmos Hub,Cosmos把协议适配网关称为Peg Zone锚定分区。
我们把Serenity也就是以太坊2.0、Polkadot和Cosmos放在一起比较一下。三者都是未来几年重要的DApp平台。首先DApp开发方式,三个链都支持智能合约。Serenity还是智能合约平台,而Polkadot/Cosmos网络中会有支持智能合约的平行链和分区链。除此之外,Polkadot和Cosmos带来了全新的DApp开发方式,就是开发特定应用的区块链。Cosmos为应用链提供的工具是Cosmos SDK,目前支持Go语言开发。Polkadot为应用链提供的工具是Substrate,目前支持Rust语言开发。
关于性能,Serenity每个分片大约是100tps,仍然是优先处理gas price高的交易。Polkadot Hub应该能达到上千tps,平行链可以自己决定共识算法、硬件和网络,没有严格的性能上限。Cosmos Hub和分区都采用Tendermint,能够达到上千tps。
关于互操作。Serenity跟以太坊1.0是一样的,智能合约可以相互调用。Polkadot平行链通过Relay与其他平行链互操作,通过Bridge与其他链互操作。Cosmos分区通过Hub可以互转通证,通过锚定分区与其他链互转通证。IBC消息也有data字段,就像电子邮件的附件,通过扩展数据字段,分区链之间可以传递任意数据。
接入方式Serenity跟以太坊1.0相同,开发者自行部署智能合约。Polkadot Relay接入要拍卖插槽,质押数量不菲的DOT。Cosmos与Polkadot 类似,是质押Atom拍卖接入资格。
然后是安全性,Serenity的分片就像是标准集装箱,DApp放进就行了,安全性由系统保障。与之相对的是Cosmos,应用链不论是否接入Hub,都是自己保障安全。Substrate开发的应用链是两个选项,要么接入Relay成为平行链,由Polkadot保障安全;要么独立运行,自己保障安全。
最后是DApp升级,它跟后面要重点讲的去中心化治理密切相关。在这里我们简单地概括为Serenity不支持DApp升级、Polkadot支持DApp的安全升级。Cosmos的分区链是可升级的,但是Cosmos SDK并没有内置对升级的支持,需要DApp开发者自行实现升级。
Polkadot/Cosmos最大的创新在于提供了新的DApp开发方式,也就是为开发应用型区块链提供了支持。
可升级智能合约通常由三个部分:代理合约、状态合约和处理逻辑合约。状态合约存储所有需要持久化的数据。代理合约负责将外部服务请求转发给处理逻辑合约。代理合约保存了处理逻辑合约的地址指针。通过部署新版本的处理逻辑合约,修改代理合约的地址指针,就能够实现处理逻辑升级。
请关注「应用治理」,这是 DApp 的阿喀琉斯之踵,, 刘毅 2019-05-29 13:27
不同的公链对应用的治理有不同支持程度。比如以太坊不支持应用的去中心化治理,Polkadot 则支持应用的链上去中心化治理。
激进一点来讲就是,智能合约方式的应用都不支持去中心化治理,这类应用更应该被定义为可验证应用;应用链方式的应用支持去中心化治理,它们才是真正的去中心化应用。
为什么这么多年智能和约平台上没出现真正的去中心化应用,很重要的原因是这些应用不能被修改。应用本身不能修改、不能演进的话,就无法被「进化」驱动,也就不会带来什么革命性的东西。我们做互联网应用或者手机应用,几周就要对应用做一次升级,去增强功能或者适应新的需求。
「治理」就是修改、完善加密协议的过程。治理是必须的,否则加密协议就只能是僵死的。但如果治理是中心化的,加密协议就会跟中心化互联网巨头的业务没有区别;只有治理是去中心化的,才能最小化信任。
货币的每一次更新换代都是因为新的替代品能够降低交易成本,这里最主要的是支付成本。支付成本本身也很复杂,它包括把货币带到交易现场交给你,你来鉴别这个货币的真伪,然后再把这个货币带离交易现场。
纸币代替铸币是降低支付成本,铸币代替贵金属货币也是,因为铸币的一个银锭就是一两,你不用称也不用剪,这就降低了支付成本。从纸币到数字货币,从数字货币到密码货币,也都是在降低支付成本。
智能合约就是一个协议,它是由以太坊保证执行的,只要你相信以太坊,信任这个协议,你就可以相信这件事,而不需要去相信交易对手方,这就做到了信任的最小化。
不过这种可验证性带来了矛盾:要想可验证,就不能修改、不能升级应用;不能修改应用限制了应用自身的创新和发展;可一旦修改应用,又会破坏其可验证,没法最小化信任。这就是去中心化应用的阿喀琉斯之踵。
因为智能合约不能被修改,目前比较多的做法就是去做一个新的智能合约,让大家迁移到这个智能合约里来。
比如 Augur 的版本 2 跟版本 1 就是相互独立的两套智能合约。版本 1 市场会在 2019 年 9 月 15 号被关闭,用户如果在版本 1 上创建延续到 9 月 15 号之后的预测市场,就要受影响。
代理合约保存着指向处理合约的指针,升级应用就是写一个新的处理合约 V2,把代理合约的指针从指向 V1 变为指向 V2,那么 V1 就被废掉了。这个变动的过程应用的使用者是感受不到的,因为数据并没有动。
在 delegatecall() 模式下,要么就是产生高的信任门槛,使用者要能看懂合约;要么就是回到中心化信任的老路上,通过区块链实现信任最小化的方式被破坏了。
MakerDAO、Aragon 等等,它们都是可升级的应用,但决定是否升级应用的不是某个公司或某个人,而是一个去中心化组织「DAO」。
我认为只有采用 DAO 做治理的应用才是真正的 DApp,去中心化的应用;其他的都是「VApp」,即可验证的应用。
比如 MakerDAO,它通过 DAO 合约进行过多次投票来调整稳定费率,已经是以太坊上去中心化治理模式的典范。
以太坊不支持公链的链上治理,EOS 支持公链的链上治理,但它们都不支持应用的去中心化治理;Polkadot 支持应用的链上去中心化治理,Cosmos 目前只支持应用的链下去中心化治理。
区块链上的应用有两种信任最小化的方式。一种是基于合约的可验证性,即智能合约不可修改产生的信任最小化;一种是基于合约的去中心化治理产生的信任最小化。
炒币?你需要懂点儿行为金融学,,, 刘毅 2019-05-12 21:57
行为金融学是心理学和金融学的交叉学科。
行为金融学的研究成果告诉我们,在投资决策机制上,人类远非“理性”,而是普遍具有多种心理偏误。能够理解、管理甚至利用心理偏误的投资者将在市场博弈中占据很大的优势。
人类的行为由人性(或者说进化稳定策略)和理性共同支配。
人性和理性有时一致、有时冲突。进化稳定策略在高等动物体内通过内分泌系统发挥作用,我们对具体的作用机制并不清楚,只能从概念上归纳为奖励中枢和惩罚中枢。
现代人的心理问题增多,核心原因是生活环境和进化稳定策略持续冲突,导致奖励中枢和惩罚中枢失调。
引发失败投资的心理机制根植于人性之中:轻率冒进、回避错误、贪婪恐惧、随波逐流,都是在长期进化中人类形成的心理特点。
严格来说,过度自信是一种现象。造成人们过度自信的心理机制主要是“确认偏误”(confirmation bias)。
确认偏误又称肯证偏见或验证偏见,是指主观上已经有了某种看法或观点时,人就会倾向于寻找或直接接受那些能够支持原有看法的信息,而忽视那些可能推翻原有看法的证据。
在任何市场环境下,收益率最高的都不是投资高手,而是胆子很大的庸手。他们的单边策略恰巧适配了行情走势。
所以这里我给一个违反直觉的投资原则:不当赚钱最多的人。或者说不要试图去赚最多的钱。
永远不可能因为从众而赚大钱。如果你的目标是赚很多钱,你就必须是特别的一个,至少要在某些关键选择上跟大多数人不一样。
也就是跟羊群相对而行,这当然不容易做到,因为人类的天性反对这样做,你会陷入孤独寂寞紧张焦虑,好像一个人迷失在野外。但是我要告诉你,这些都是杰出投资必然的经历。
别人犹豫要不要跟的时候,高手已经出手了,别人在犹豫是不是要卖出的时候,高手已经清仓离场。所以总结下来就是六个字:顺势而为要快。
我建议的方法是在每次建仓之前,写下买入的理由。首先要对这些理由进行检视,是否合理、是否理性,对某个加密资产进行投资,合理的原因应该是预测其未来能够保值或者升值,不要掺杂社会理想和个人喜好,避免受光环效应的干扰。
设定投资比例的上限有三个原因,第一个原因是恰恰是因为加密资产的上涨空间非常大。哪怕你只投入几万元,如果你对市场的认知是正确的,操作又有足够的纪律性。
加密资产占全部可投资金的比例,低于交易BTC的年限,乘以10%。例如,你投资BTC还不足一年,那么配置比例不应该超过10%。
万字长文说透 Polkadot 架构,,, 刘毅 2019-04-30 11:34
去中心化应用承载着重塑互联网的伟大理想,但是其发展现状非常窘迫,这个也大家都清楚,我简单提一下。
首先是用户极少,例如预测市场 Auger,DApp 领域的明星项目,融资数千万美元,开发历时三年多,上线之后日活用户几十人,而且 Auger 不是个案。主要是因为区块链基础设施不给力,使得 DApp 使用门槛高、用户体验差。就好比以太坊是一条村级公路,收费高而且拥堵,当然就没人愿意走。
区块链把冗余推到了极限,网络中所有的计算机,不论是几百台还是上万台。都执行相同的计算,存储相同的数据。冗余的程度无以复加。极度冗余意味着极度高昂的成本,
能不能把 DApp 和中心化互联网应用的成本差距,从 100 万倍拉近到 10 万倍,1 万倍,甚至 1 千倍。同时仍然保持去信任、无许可和抗审查这三大好处。回答是完全可能,只要降低冗余的程度,就能降低成本。方法有三类,也就是区块链扩容的三个思路——代议制、分层和分片。
代议制是人民选出代表,再由代表来议定法律或者重大决议。代议制提升决策效率有两个原因,第一是参与共识的人数大为减少,第二是代表通常是专职政治家,他们有更多的资源和知识来议定国家大事。
用代议制的方式来做区块链扩容,最典型的是采用 DPoS 共识的 EOS。EOS 通证的持有者选出超级节点,21 个超级节点轮流出块。跟以太坊相比,参与共识的计算机数量下降了 3 个数量级。
分层也称为二层扩容或者链下扩容,就是把一部分交易放到在区块链以外执行,同时仍然保障交易安全。分层有状态通道和侧链两类技术。还有一类二层技术,是把计算密集型任务转移到链下执行,这块与分享主题无关,不再提及。
状态通道和侧链是不同的技术隐喻,但是到了实现层面,其实非常相似。
第三个扩容思路是分片,原理很简单,就是别让所有的节点都执行所有的交易。把节点分成很多组,或者说分成很多片。多个分片可以并行处理交易,总体的处理能力就提高了。
当然还需要一条特殊的链来看管所有的分片,这条一般称之为主链,它要做很多工作,后面再详细介绍。粗略的解释是,如果没有主链,多个分片之间没有联系,那就是完全独立的多条区块链,跟扩容无关了。
分片的难题 —— 验证人选择,分片的验证人分组不是固定的,而是随机选取,而且每隔一段时间就重新分组。分片的难题 —— 跨片交易完整性,在分片的方案中,每个分片上可以运行一到多个 DApp,不论 DApp 在不在同一分片,都要能互操作。分片的难题 —— 最终性 VS 活性,finalize 就是使区块具有最终性,我翻译成敲定。要使区块具有最终性。简洁的方法就是出块即敲定。Cosmos 的 Tentermint 共识就是这样。但是这个做法在特殊情况会出问题。分片的难题 —— 交易有效性,交易有效性问题就是防止无效交易进入区块,成为区块链维护的历史真相的一部分。
下一代以太坊的 lay1 扩容思路就是分片。关于下一代以太坊,信息很混乱,连名称都不统一,有以太坊 2.0、Serenity、Shasper、Casper 以太坊等,我们统一称为 Serenity。长期而言,Serenity 并不依赖 Pow 链,PoW 下面的三层都属于 Serenity,而且恰好对应 Serenity 演进的三个阶段。
首先是 Beacon Chain 信标链,主要功能是管理验证人。信标链往下是多条分片链,图上画的是 100 个 分片。分片链被看成 Serenity 的数据层,负责存储交易数据,维护数据的一致性、可用性还有活性,也就是确保总是能出块,不会被锁住。分片链的上线时间还不确定。
分片链的下方是虚拟机,虚拟机负责执行智能合约和转账交易,改变状态,也就是对分片链数据进行读写。Serenity 很重要的设计决策是把数据层分片链和逻辑执行引擎虚拟机解耦。
Serenity 如何前面所说的四个分片难题呢?首先是在信标链上管理验证人池,为每个分片链随机指定一组验证人。采用混合共识,验证人轮流出块,采 Casper FFG 敲定最终性。用举报奖励方法保障交易有效性。
从更大的图景上看,Serenity、Polkadot 和 Cosmos 互联是可行的,也一定会发生。EOS 等采用 DPoS 的区块链也都可以连接进来,再加上侧链等二层网络,异构区块链的互联网络将会形成。
三个扩容思路,每个都有多种实现,我只列出代表性项目。代议制扩容的代表是 EOS 和波场。分层扩容分为状态通道和侧链两个分支,状态通道的方案有 Celer Network、Counterfactual 等,侧链有 Loom、OmiseGo 等。分片的三个典型方案,Serenity、Polkadot 和 Cosmos 已经逐一介绍过了。
App 开发目前只有种,就是智能合约。智能合约有两个主流的方案,EVM 和 Wasm。我们列出的项目,基本都支持 EVM,现在或者未来会支持 Wasm。
EVM 的主力开发语言是 Solidity,围绕 Solidity 已经形成生态,包括 Truffle/Remix/OpenZepplin 等工具、大量的技术资料、实例、社区讨论答疑等等,而且也有相当一批程序员会 Solidity 语言。所以掌握了 Solidity,可以确保在大多数公链上开发 DApp。
目前唯一的例外是 EOS,EOS 不支持 EVM,而是一步到位使用 wasm。wasm 会是未来智能合约开发的标准,可以支持用多种编程语言开发智能合约,包括 java\c++\go\rust 等等。